package com.elinshaw.b

/**
 * 定义一个案例类
 * 没有关键字new因为案例类有一个默认的apply方法来负责对象的创建。
 *
 * 当你创建包含参数的案例类时，这些参数是公开（public）的val
 * 在案例类中使用var也是可以的，并不推荐
 *
 * @param isbn
 */
case class Book(isbn: String)

case class Message(sender: String, recipient: String, body: String)

abstract class Notification

case class Email(sender: String, title: String, body: String) extends Notification

case class SMS(caller: String, message: String) extends Notification

case class VoiceRecording(contactName: String, link: String) extends Notification



